#!/bin/bash

echo "--- 配置 WSL 支持远程 Root 登录 ---"

# 1. 确保在 WSL 中安装并启动 OpenSSH 服务器
echo "检查并安装 OpenSSH 服务器..."
sudo apt update -y
sudo apt install openssh-server -y

# 2. 配置 SSH 服务器允许 Root 登录
echo "配置 SSH 服务器允许 Root 登录..."
SSH_CONFIG_FILE="/etc/ssh/sshd_config"

# 备份原始配置文件
if [ ! -f "${SSH_CONFIG_FILE}.bak" ]; then
    sudo cp ${SSH_CONFIG_FILE} "${SSH_CONFIG_FILE}.bak"
    echo "原始 SSH 配置文件已备份至 ${SSH_CONFIG_FILE}.bak"
fi

# 修改 PermitRootLogin 为 yes
# 先删除或注释掉旧的 PermitRootLogin 行，再添加新的
sudo sed -i '/^#\?PermitRootLogin/d' ${SSH_CONFIG_FILE}
echo "PermitRootLogin yes" | sudo tee -a ${SSH_CONFIG_FILE} > /dev/null

# 允许基于密码的认证（如果需要，否则通常使用密钥）
# 先删除或注释掉旧的 PasswordAuthentication 行，再添加新的
sudo sed -i '/^#\?PasswordAuthentication/d' ${SSH_CONFIG_FILE}
echo "PasswordAuthentication yes" | sudo tee -a ${SSH_CONFIG_FILE} > /dev/null

# 3. 设置 root 用户的密码（如果尚未设置）
echo "请为 root 用户设置一个密码："
sudo passwd root

# 4. 启动或重启 SSH 服务
echo "重启 SSH 服务..."
sudo service ssh restart

echo "--- 配置完成 ---"
echo "您现在应该可以通过 SSH 连接到 WSL 的 root 用户。"
echo "请记住 WSL 的 IP 地址可能会更改，您可以使用 'ip addr show eth0 | grep -oP 'inet \K[\d.]+' ' 命令查看。"
echo "安全提示：远程 root 登录存在安全风险，请谨慎使用。"